// stl using Base::Base
#include <iostream>
using namespace std;
class Base {
 public:
  Base() {}
  Base(int i) {}
  Base(int i, double j) {}
  Base(int i, double j, const string& str) { cout << "this is Base." << endl; }
};

class Derived : Base {
 public:
  using Base::Base;  // using Base
  Derived(int i, double j, const string& str) : Base(i, j, str) {
    cout << "this is Derived." << endl;
  }
};

int main() {
  Derived d1(1);       // using Base(i)
  Derived d2(1, 3.2);  // using Base(i,j)
  Derived d3(1, 3.2, "hello");
  return 0;
}
